Object-based operation and maintenance (OAM) systems and related methods and computer program products

ABSTRACT

Object-based operation and maintenance (OAM) systems and related methods and computer program products are disclosed. One exemplary system includes a computer comprising a memory. The computer is in communication with a network comprising a network-attached components operating in an OAM system. The system can also include an object-based representation of the network stored in the memory. The object-based representation comprises objects linked together in the memory to form a hierarchy. Each of the objects represent the network or the network-attached components. In addition, each of the objects stores attribute information about the network or the network-attached components with regard to the OAM system. Further, the system can include an application for interpreting and utilizing the object-based representation of the network for operating and maintaining the network and network-attached components in the OAM system.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 60/609,637 entitled “Object-Based Operation and Maintenance (OAM) Systems and Related Methods”, filed Sep. 14, 2004, the disclosure of which is incorporated herein by reference in its entirety.

TECHNICAL FIELD

The subject matter described herein relates to network management systems. More particularly, the subject matter described herein relates to object-based operation and maintenance (OAM) systems and related methods and computer program products.

BACKGROUND ART

Managing and monitoring connected components is important for local and wide area network applications and other interconnected environments. Several operation and maintenance (OAM) systems and related protocols are known which are designed to enable network management of network-attached components. Some of these systems and protocols include a collection of attributes and procedures for accessing the attributes associated with a network-attached component.

One example of an OAM protocol is simple network management protocol (SNMP). Under SNMP, a network device has an attribute management system which includes a database for storing attribute information relating to the network device, referred to as a management information base (MIB). The network device can also contain agent software for querying and modifying the attribute information, referred to as an agent. A network being managed under SNMP also includes a management station running management software which provides centralized control of the various network components by communicating with the agent software over the network. The management software typically runs on a network-attached computer and an interface is provided in the form of a graphical user interface (GUI). The management software obtains information about various network-attached components in the MIBs and allows a user to monitor, query or modify the information in the MIBs. To monitor, query or modify information, the management software sends a request over the network to the attribute management system. Agent software for examining or otherwise performing operations on the attribute examines the request, and if valid, carries out the request and sends a message back to the management software.

Typical networks include network-attached components in distributed architectures that are manufactured by a variety of different vendors. These different network-attached components typically require customization in order to integrate these components with current OAM systems and protocols, such as SNMP. Due to the difficulty with integrating different vendor-specific aspects, current OAM systems and related protocols have been limited to managing only the attributes of network-attached components that are common to all or a large portion of vendors. Therefore, there exists a need for improved OAM systems and protocols for integrating the vendor-specific aspects of different network-attached components.

Other OAM systems, such as CORBA® (acronym for Common Object Request Broker Architecture) (developed by Object Management Group, Inc. of Needham, Maine, U.S.A.), can be overly complex except for advanced programmers. The complexity of such systems can result in an OAM operator having difficulty interpreting displayed information. In addition, existing OAM systems can require excessive implementation overhead. Therefore, there exists a need to provide OAM systems and protocols having reduced complexity for improving operator interface.

Accordingly, there exists a need for improved systems, methods, and computer program products for operating OAM-based networks.

SUMMARY

According to one aspect, systems are provided for operating and maintaining resources in a distributed network. According to one example, a system includes a computer comprising a memory. The computer is in communication with a network comprising a plurality of network-attached components operating in an operation and maintenance (OAM) system. The system can also include an object-based representation of the network stored in the memory. The object-based representation comprises objects linked together in the memory to form a hierarchy. Each of the objects represents the network or the network-attached components. In addition, each of the objects stores attribute information about the network or the network-attached components with regard to the OAM system. Further, the system can include an application for interpreting and utilizing the object-based representation of the network for operating and maintaining the network and network-attached components in the OAM system.

According to another aspect, methods are provided for operating and maintaining resources in a distributed network having a plurality of components. According to one example, a method can include providing an object-based representation of a network in a memory of a computer connected to the network. The object-based representation comprises objects linked together in the memory to form a hierarchy. Each of the objects represent the network or network-attached components connected to the network and operating in an operation and maintenance (OAM) system. In addition, each of the objects stores attribute information about the network or the network-attached-components with regard to the OAM system. The method can also include operating the network based on the object-based representation of the network.

The subject matter described herein for operating and maintaining resources in a distributed network may be implemented using a computer program product comprising computer executable instructions embodied in a computer readable medium. Exemplary computer readable media suitable for implementing the subject matter described herein include disk memory devices, programmable logic devices, application specific integrated circuits, and downloadable electrical signals. In addition, a computer readable medium that implements the subject matter described herein may be distributed across multiple physical devices and/or computing platforms.

BRIEF DESCRIPTION OF THE DRAWINGS

Exemplary embodiments of the subject matter will now be explained with reference to the accompanying drawings, of which:

FIG. 1 is a schematic diagram of an exemplary distributed network having different resources operated and maintained by an operation and maintenance (OAM) computer according to an embodiment of the subject matter described herein;

FIG. 2A is a hierarchy diagram that represents the relationship of a class and objects describing and representing protocols operating in a network according to an embodiment of the subject matter described herein;

FIG. 2B is a hierarchy diagram that represents the relationship of a class and objects describing and representing gateways operating in a network according to an embodiment of the subject matter described herein;

FIG. 2C is a hierarchy diagram that represents the relationship of a class and objects describing and representing trunk groups operating in a network according to an embodiment of the subject matter described herein;

FIG. 2D is a hierarchy diagram that represents the relationship of classes and objects describing and representing signaling interfaces operating in a network according to an embodiment of the subject matter described herein;

FIG. 2E is a hierarchy diagram that represents the relationship of a class and objects describing and representing ATM ports operating in an OAM system of an ATM network according to an embodiment of the subject matter described herein;

FIG. 2F is a hierarchy diagram that represents the relationship of a class and objects describing and representing a local VPI/VCI operating in an OAM system of an ATM network according to an embodiment of the subject matter described herein;

FIG. 2G is a hierarchy diagram that represents the relationship of a class and objects describing and representing endpoints operating in an OAM system of a network according to an embodiment of the subject matter described herein; and

FIG. 3 is a hierarchy diagram of an object environment representing an ATM network according to an embodiment of the subject matter described herein.

DETAILED DESCRIPTION

The subject matter described herein includes methods, systems, and computer program products for operating and maintaining resources in a distributed network. FIG. 1 is a schematic diagram illustrating an exemplary distributed network 100 having different resources operated and maintained by an operation and maintenance (OAM) computer 102 according to an embodiment of the subject matter described herein. In this embodiment, network 100 is an asynchronous transfer mode (ATM) network. The subject matter described herein may be applied to network 100 for operation and maintenance functionality. As described in further detail herein, computer 102 can include a memory 104 for storing an object-based representation of network 100. Computer 102 can also include an application 106 for interpreting and utilizing the object-based representation of network 100 stored in memory 104 for operating and maintaining network 100 and its resources.

Network 100 can include a signaling and control system 108, ATM systems 110 and 112, and a gateway 114. ATM systems 110 and 112 are connected to system 108 by links 116 and 118, respectively. Gateway 114 is connected to ATM systems 110 and 112 via trunks 120 and 122, respectively. Links 116 and 118 can carry signaling traffic. Trunks 120 and 122 can transmit user data traffic. Network 100 may have many more components, links, and connections than are shown, but the number of these components, links, and connections has been restricted for clarity purposes. The subject matter described herein is also applicable to other types of communications networks, such as IP-based networks and TDM-based networks.

A network, such as ATM network 100, may include a plurality of resources that are operated and maintained. These resources can be associated with attribute information about the network for use by an operator in operating and maintaining the network. Exemplary resources for use in network 100 include a signaling gateway, such as the Newbridge 36170 gateway (available from Alcatel of Paris, France) and the AN2100® gateway (available from Tellabs, Inc. of Naperville, Ill., U.S.A.). In addition, network 100 can utilize a suitable protocol such as the Q.2931 protocol and the ISDN user part (ISUP) protocol. Network 100 may also include signaling interfaces (Sig IFs), ports, endpoints, and other suitable components that may be operated and maintained using the subject matter described herein. As appreciated by those of skill in the art, an ATM network may manage virtual paths and virtual channels, which may be managed by utilizing virtual path identifiers (VPIs) and virtual channel identifiers (VCIs), respectively.

According to an embodiment of the subject matter described herein, an object-based framework is provided for capturing aspects of a network, such as ATM network 100, that enable the implementation of OAM tasks. The object-based framework provides reusable and easily expandable programs for responding to new requirements of the OAM system of the network. In the object-based framework, each object is treated as an instance of a class. Objects may inherit the attributes of the class from which it is defined. According to an embodiment of the subject matter described herein, any suitable programming language may be utilized for producing an object-based framework for representing the network or network-attached components with regard to the OAM system.

In an object-based framework, objects may be defined by creating classes or generic objects which act as guides for instructing a compiler how to construct a child object. A class may specify the number and type of data variables and the steps involved in the functions which manipulate data. An object may be created by means of a function called a constructor which uses the corresponding class definition and additional information, such as arguments provided during object creation, to construct the object. Objects may be used by manipulating their data and invoking their functions. The objects described herein may be used to manipulate data and functions related to an OAM system.

Inheritance may be utilized for forming new classes or objects using predefined classes or objects where newly defined classes or objects take over the implementations and characteristics of the previously defined classes or objects. The classes and object described herein may be adapted by operators for providing new implementations of classes or objects with regard to the OAM system.

Objects may have one or more responsibilities for representing the network or network-attributes with regard to the OAM system. In order to cause an object to carry out one of its responsibilities, an application, such as application 106, may send a message to the object. In response, the object performs the corresponding task or service. Thus, in order to get an object to perform a service for which it is responsible, the first step is to create the object from the desired class using a constructor. The next step is to send a formatted message to the object to invoke the desired member function of the object.

FIGS. 2A-2G are exemplary hierarchy diagrams representing classes and objects that may be utilized for storing attribute information about a network, protocols utilized by the network, and network-attached components with regard to the OAM system according to an embodiment of the subject matter described herein. Referring specifically to FIG. 2A, a hierarchy diagram is illustrated that represents the relationship of a class (or generic object) and objects describing and representing protocols operating in a network according to an embodiment of the subject matter described herein. Protocol class 200 defines the number and type of data variables and functions for manipulating protocol-related data in an OAM system of a network. ISUP protocol object 202 and Q.2931 protocol object 204 inherit the definitions provided by class 200. Further, object 202 defines the ISUP protocol operating in the OAM system. Object 204 defines the Q.2931 protocol operating in the OAM system.

Referring to FIG. 2B, a hierarchy diagram is illustrated that represents the relationship of a class (or generic object) and objects describing and representing gateways operating in a network according to an embodiment of the subject matter described herein. Class 206 defines the number and type of data variables and functions for manipulating gateway-related data in an OAM system of a network. 36170 gateway object 208 and AN2100® gateway object 210 inherit the definitions provided by class 206. Further, object 208 defines a 36170 gateway operating in the OAM system of the network. Object 204 defines an AN2100® gateway operating in the OAM system of the network.

Referring to FIG. 2C, a hierarchy diagram is illustrated that represents the relationship of a class (or generic object) and objects describing and representing trunk groups operating in a network according to an embodiment of the subject matter described herein. Class 212 defines the number and type of data variables and functions for manipulating trunk group-related data in an OAM system of a network. ISUP trunk group object 214 and Q.2931 trunk group object 216 inherit the definitions provided by class 212. Further, object 214 defines an ISUP trunk group operating in the OAM system of the network. Object 214 defines a Q.2931 trunk group operating in the OAM system of the network.

Referring to FIG. 2D, a hierarchy diagram is illustrated that represents the relationship of classes (or generic objects) and objects describing and representing signaling interfaces operating in a network according to an embodiment of the subject matter described herein. Class 218 defines the number and type of data variables and functions for manipulating signaling interface-related data in an OAM system of a network. Class 220 and object 222 represent a class and an object, respectively, which inherit the definitions provided by the class 218. In particular, class 220 defines a Q.2931 signaling interface operating in the OAM system of the network. Object 222 defines an ISUP signaling interface operating in the OAM system of the network. Objects 224 and 226 inherit the definitions provided by the Q.2931 signaling interface classes 218 and 220. Object 224 defines a non-multiplexed Q.2931 signaling interface operating in the OAM system. Object 226 defines a multiplexed Q.2931 signaling interface operating in the OAM system.

Referring to FIG. 2E, a hierarchy diagram is illustrated that represents the relationship of a class (or generic object) and objects describing and representing ATM ports operating in the OAM system of an ATM network according to an embodiment of the subject matter described herein. Class 228 defines the number and type of data variables and functions for manipulating ATM port-related data in an OAM system of the ATM network. Objects 230 and 232 inherit the definitions provided by the ATM port class 228. In particular, object 230 defines a Q.2931 ATM port operating in the OAM system. Object 232 defines an ISUP ATM port operating in the OAM system.

Referring to FIG. 2F, a hierarchy diagram is illustrated that represents the relationship of a class (or generic object) and objects describing and representing a local VPI/VCI operating in an OAM system of an ATM network according to an embodiment of the subject matter described herein. Class 234 defines the number and type of data variables and functions for manipulating local VPI and VCI-related data in the OAM system. Objects 236, 238, and 240 inherit the definitions provided by the local VPI/VCI class 234. In particular, object 236 defines a local proxy signaling VPI/VCI in the OAM system. Object 238 defines a local Q.2931 multiplexed VPI/VCI in the OAM system. Object 240 defines a local Q.2931 signaling VPI/VCI in the OAM system.

Referring to FIG. 2G, a hierarchy diagram is illustrated that represents the relationship of a class (or generic object) and objects describing and representing endpoints operating in an OAM system of a network according to an embodiment of the subject matter described herein. Class 242 defines the number and type of data variables and functions for manipulating endpoint-related data in the OAM system. Objects 244 and 246 inherit the definitions provided by the endpoint class defined by class 242. In particular, object 244 defines a Q.2931 endpoint operating in the OAM system. Object 246 defines an ISUP endpoint operating in the OAM system.

FIG. 3 illustrates a hierarchy diagram of an object environment representing an ATM network, such as network 100, according to an embodiment of the subject matter described herein. The object environment can be stored in memory 104 and accessed by application 106. The objects in the object environment represent the ATM network and its components. Application 106 can interpret and utilize the object representation of the network for operating and maintaining the network and network-attached components in an OAM system. These objects are created and linked together in memory 104 to form a hierarchy 300.

A hierarchy can include one or more objects residing at its apex. In the embodiment shown in FIG. 3, hierarchy 300 includes a system object 302, Q.2931 protocol object 204, 36170 gateway object 208, Q.2931 trunk group object 216, and non-muxed Q.2931 signaling interface object 224. Objects 302, 204, 208, 216, and 224 share the apex, or top level, of hierarchy 300 for describing and representing network 100 for use in operating and maintaining network 100. Attributes of objects 302, 204, 208, 216, and 224 describe information on the operation and maintenance of network 100. In addition, objects 302, 204, 208, 216, and 224 can be defined to have a set of attributes, services, and relationships with each other and various other linked objects.

System object 302 may represent the ATM network. System object 302 can be utilized to group together components and attributes of the ATM network. Exemplary system attributes include system configuration and system-wide call processing parameters. System object 302 includes one instance, meaning there may be one instance of the system in the OAM representation.

Hierarchy 300 can also include various other objects linked with objects 302, 204, 208, 216, and 224 for further describing the network 100. For example, an ATM link object 304 can be linked to system object 302 in a parent-child relationship for organizing the objects into a hierarchy. In the example, ATM link object 304 describes and represents an ATM link operating in the ATM network. ATM link object 304 includes four instances, meaning there may be four instances of the ATM link in the representation of the OAM system. ATM link object 304 may include information about 36170 gateway ports to which a voice operated exchange (VoX) is physically linked.

Q.2931 protocol object 204 describes and represents the Q.2931 protocol operating in the ATM network. Object 204 may group together Q.2931 protocol-related attributes, such as trunk group parameter lists (or profiles) and timer lists. Object 204 includes one instance.

A Q.2931 configuration object 306 may be linked to Q.2931 protocol object 204 in a parent-child relationship. This object contains a list of protocol-specific parameters. Object 306 is referenced by Q.2931 trunk group object 216. Each trunk group of object 216 refers to object 306. Object 306 allows 0-1024 instances.

A Q.2931 timer list object 308 is connected to Q.2931 protocol object 204 in a parent-child relationship. This object contains a list of Q.2931 timers for use in the network. Each Q.2931 trunk group of object 216 references one such timer list defined by object 308. Object 308 allows 0-1024 instances. Further, each trunk group defined by object 216 references non-multiplexed Q.2931 signaling interface object 224.

36170 gateway object 208 describes and represents a 36170 gateway operating in the ATM network. Object 208 may group together 36170 gateway-related attributes and allow 0-255 instances.

Local proxy Sig VPI/VCI object 236 is connected to object 208 in a parent-child relationship. As stated above, object 236 defines a local proxy signaling VPI/VCI in the OAM system. Object 236 is related to class 234 by inheritance. In this example, object 236 includes one instance.

Local proxy Q.2931 Mux VPI/VCI object 238 is also connected to object 208 in a parent-child relationship. As stated above, object 236 defines a local proxy signaling VPI/VCI in the OAM system. Object 238 is related to class 234 by inheritance. In this example, object 238 includes 0 to 1 instances.

A 36170 QsPort object 310 is connected to object 208 in a parent-child relationship. This object describes and represents a 36170 gateway port operating in the ATM network. ATM link object 304 references object 310.

Q.2931 port object 230 is connected to object 216 in a parent-child relationship. Object 230 is related to class 228 (shown in FIG. 2) by inheritance. Object 230 specifies the port associated with the trunk group of object 216 and describes the characteristics of the port while it is in use by this trunk group. In this example, object 230 includes one instance. Object 230 references object 310.

Q.2931 endpoint object 244 specifies the endpoint associated with the trunk group of object 216 and describes the characteristics of the endpoint while it is in use by this trunk group. Object 244 may be connected to object 216 in a parent-child relationship. Object 244 is related to class 242 (shown in FIG. 2) by inheritance. In this example, object 244 includes O-N instances and references object 230.

Local Q.2931 signaling VPI/VCI object 240 and remote Q.2931 signaling VPI/VCI object 312 are connected to object 224 in a parent-child relationship. Object 240 is related to class 234 by inheritance. Object 240 includes the VPI and VCI information for the VoX side of a backhaul switched virtual circuit (SVC), which may be unique among all local VPI and VCI. Object 312 includes the VPI and VCI for the integrated access device (IAD) side of the backhaul SVC.

Object-oriented pseudo code is provided hereinbelow for describing an ATM network. Different keywords known to those of skill in the art are utilized in the object-oriented code for describing the ATM network. Table 1 below includes examples of different keywords that may be used in object-oriented pseudo code for describing the ATM network. TABLE 1 Keywords for Object-Oriented Pseudo Code Describing an OAM System of an ATM Network Keyword Description MAXINSTANCES This keyword denotes the maximum allowable number of instances for a given object. NONE This keyword indicates that an attribute does not have a default value. READONLY This keyword qualifies an attribute that is not user-modifiable. CRITICAL This keyword qualifies an attribute having a value that can be assigned only once at the creation of the object. KEY This keyword denotes an attribute that is a simple key. COMPKEY This keyword denotes an attribute that is a part of a compound key. DYNAMIC This keyword qualifies an object that is automatically added by the system (i.e., an attribute not entered by an operator). OPERATIONAL This keyword qualifies an attribute having a value supplied by the system. No default is required for such an attribute. NONNULL For a reference, this keyword specifies that it must be non-null (i.e., it must point to some component (i.e., have an instance) which already exists. UNIQUE For a reference, this keyword specifies a one-to-one association. For example, if object A refers to a UNIQUE object B, then no other object C is allowed to refer to object B. When creating such an object A which tries to point to object B, an integrity check is required to ensure that object B is not already part of a one-to-one association with some object C. When object B is involved in more than one different one-to-one associations, then these can be distinguished by labels (e.g., UNIQUE(label1), UNIQUE(label2), etc.).

According to an embodiment of the subject matter described herein, several rules apply for utilizing the objects, classes, and keywords in the object-oriented code. For example, in a class, when an attribute or set of attributes is denoted as KEY or KEYCOMP, then the value or the compound value is unique across all classes or objects derived from that class. As an example, if object A references object B, object B cannot be deleted. In a parent-child relationship of classes or objects, a child object cannot exist without its parent class or object. As a result, a parent cannot be deleted as long as it has children objects, and children objects may be deleted if a parent object or class is deleted.

Regarding instances, an object having multiple instances results in a table of objects. For an object having only one instance under a parent object, there is one object for each instance of the parent object if the parent object has more than one instance. For example, there is a table of objects that each point to the parent object, or the parent object includes all of the attributes defined by the child object. A top-level object with only one instance and no attributes is an envelope for grouping together related components.

The following is an example of a definition type for use in an object-oriented code for maintaining the state of the availability of trunks in an ATM network. Type AvailabilityStateType :   Enum [SwitchFailure(0x1), FacilityFailure(0x2),     RouteFailure(0x4), Congestion(0x8),     CircuitReset(0x10), ContinuityRetest(0x20),     UserPartUnavailable(0x40)] The state of the availability of trunks in this definition include switch failure, facility failure, route failure, congestion, circuit reset, continuity retest, and user part unavailable. Trunk availability may be determined by the information associated with this definition.

The following is an exemplary object-oriented pseudo code and associated description for system object 302 according to an embodiment of the subject matter described herein. component System { instances 1 description “This is an envelope for grouping together the system components. Examples: system configuration, system- wide call processing parameters etc.” // ... System attributes and components go in here component ATMLink { instances 4 table AtmLink // new table qualifiers DYNAMIC description “These components specify the 4 ATM links on VoX. They include the information about the 36170 ports VoX is physically linked to, which is required e.g. when creating the Q2931 backhaul SVCs (see also components Q2931SigIF).” attribute LinkPriority : enum [Primary(1), PrimaryBackup(2), Secondary(3), SecondaryBackup(4)] { default NONE qualifiers KEY, READONLY description “Specifies the link priority, which is used by the link redundancy schema.” } reference Neighbor36170Port to UNIQUE 36170sPort By (NodeId, Shelf, Slot, Port) { default NONE qualifiers NONNULL description “This associates the ATM link (Primary, Secondary etc.) with a unique physical port on the 36170.” } } // end of Neighbor36170Port // ... other System components may go in here } // end of System The pseudo code description for system object 302 allows one instance and provides an envelope for grouping together system components and system attributes.

An example of code description for ATM link object 304 is included in the above code description of system object 302. The code for ATM link object 304 allows four instances, an attribute, and an object reference. The attribute is priority for the link, which may be utilized in a link redundancy schema. The object reference is to 36170 QsPort object 310, which associates the ATM link with a unique physical port on a 36170 gateway object, such as 36170 gateway object 208.

The following is an exemplary object-oriented pseudo code and associated description for Q.2931 protocol object 204. component Q2931Protocol : Protocol { instances 1 description “This is an envelope for grouping together Q2931-related components like trunk group parameter lists (profiles), timer lists etc.” component Q2931Configuration { instances 0..1024 table Q2931Configuration // similar to IsupConfiguration description “This is a trunk group parameters profile. It contains a list of protocol-specific parameters for a Q2931 trunk group. Each Q2931 trunk group refers to exactly one such profile.” attribute Id : integer [1..MAXINSTANCES] { default NONE qualifiers KEY, READONLY description “Unique Id for this configuration (profile)” } attribute Description : string [0..15] { default “” description “Description field for this profile.” } attribute Q2931Variant : enum [ALTA(0)] { default ALTA(0) qualifiers CRITICAL description “Specifies the Q2931 variant used for signaling for this trunk group.” } attribute RemoteExchangeType : enum [Iad(0), VoX(1)] { default Iad(0) qualifiers CRITICAL description “Specifies whether this trunk group connects VoX to an IAD or to another VoX.” } attribute Q2931Preferred : enum [no(0), yes(1)] { default no(0) description “Specifies whether or not incoming calls on this trunk group are routed to Q2931 routes before any other route type (e.g. Isup).” } attribute ErrorTreatment : enum [tone_ann(1), release(2)] { default release(2) description “Specifies the behavior of the call when a Q2931 Release message is received on this trunk group.” } attribute BearerCapabilityRoute : enum [no(0), yes(1)] { default no(0) description “Specifies whether or not incoming calls on this trunk group are routed based on the Bearer Capability IE.” attribute BearerCapability : enum [speech(0), unrestricted_64(8), restricted_64(9), audio_3_1(16), audio_7_0(17), video(24)] { default speech(0) description “Specifies the bearer capability supported on this trunk group. In order to be routed on this trunk group, an outgoing call must match this Bearer Capability.” } attribute BearerCutThrough : enum [setup(0), alert(1), answer (2)] { default origination(0) description “Specifies when to complete the bearer cut-through for calls on this trunk group.” } attribute EchoControlIncluded : enum [no(0), yes(1)] { default yes(1) description “Specifies, for incoming calls on this JIP parameter, whenever the call is outgoing on an ISUP trunk group and the JIP parameter is required. NOTE: the JIP data is always taken from the incoming trunk group.” } attribute CallingPartyNumberIncluded : enum [no(0), yes(1)] { default yes(1) description “Specifies, for outgoing calls on this trunk group, whether or not the Calling Party Number IE is to be included in the outgoing Q2931 Setup message.” } attribute CallingPartyNumberRestricted : enum [no(0), yes(1)] { default no(0) description “Specifies, for incoming calls on this trunk group, whether or not the Calling Party Number has a presentation restriction (i.e. is not allowed to be included in the outgoing origination message).” } attribute DefaultCallingPartyNumber : digits [0..15] { default “” description “Specifies, for incoming calls on this trunk group, the default Calling Party Number, whenever this IE is not present in the incoming Q2931 Setup message.” } attribute DefaultOriginatingLineInformation : integer [0..255] { default 0  //OLI = pots description “Specifies, for incoming calls on this trunk group, the default OLI, to be included in the OLI parameter, whenever the call is outgoing on an Isup trunk group and the OLI parameter is required.” } attribute DefaultCallingPartyCategory : integer [0..255] { default 0 description “Specifies, for incoming calls on this trunk group, the default CPC, to be included in the CPC parameter, whenever the call is outgoing on an Isup trunk group and the CPC parameter is required.” } attribute BroadbandBearerClassUsed : enum [bcob_a(0), bcob_x(1)] { default bcob_a(0) description “Specifies which broadband bearer class to use in signaling for this trunk group.” } attribute Q2931AddressleUsed : enum [cpnumber(0), cpsubaddress(1)] { default cpsubaddress(1) description “Specifies which IE contains the address information for calls on this trunk group.” } } // end of Q2931Configuration component Q2931TimerList { instances 0..1024 table Q2931TimesTable // similar to IsupTimersTable description “Contains a list of Q2931 times. Each Q2931 trunk group refers to one such timer list.” attribute Id : integer [1..MAXINSTANCES] { default NONE qualifiers KEY, READONLY description “Unique Id for a timer list.” } attribute Description : string [0..15] { default “” description “Contains a text description of this timer list.” } attribute T301 : integer [1..300] { default 180 description “Value of T301 timer (Alerting received)” } attribute T303 : integer [1..60] { default 180 description “Value of T303 timer (Setup sent)” } attribute T308 : integer [1..60] { default 30 description “Value of T308 timer (Release sent)” } attribute T309 : integer [1..60] { default 10 description “Value of T309 timer (SAAL down)” } attribute T309SW : integer [1..120] { default 30 description “Value of T309SW timer (switchover).” } attribute T310 : integer [1..60] { default 10 description “Value of T310 timer (awaiting Connect, Alerting or Release)” } attribute T316 : integer [1..300] { default 120 description “Value of T316 timer (Restart sent)” } attribute T322 : integer [1..60] { default 4 description “Value of T322 timer (Status Enq. Sent)” } } // end of Q2931TimerList } // end of Q2931Protocol The pseudo code description for Q.2931 protocol object 204 allows one instance and provides an envelope for grouping together protocol components and attributes, such as trunk group parameters lists and timer lists.

An example of code description for Q.2931 configuration object 306 is included in the above pseudo code description for Q.2931 protocol object 204. The pseudo code description for Q.2931 configuration object 306 allows 0-1024 instances. Object 306 includes an Id attribute for uniquely identifying this profile of the object. Further, the pseudo code for object 306 includes a Description attribute for providing a description field. A Q2931 Variant attribute is provided for specifying the Q.2931 variant used for signaling for this trunk group. A RemoteExchangeType attribute is provided for specifying whether the trunk group connects VoX to an IAD or to another VoX. A Q2931 Preferred attribute is provided for specifying whether incoming calls on the trunk group are routed to Q.2931 routes before any other route type, such as ISUP. An ErrorTreatment attribute is provided for specifying the behavior of the call when a Q.2931 release message is received on this trunk group.

The pseudo code for object 306 also includes a BearerCapabilityRoute attribute for specifying whether incoming calls on this trunk group are routed based on the ATM Bearer Capability IE (information element). The ATM Bearer Capability IE carries ATM-specific parameters for the characterization of an ATM bearer service, such as ATM transfer mode, connection mode, traffic type, and end-to-end timing. A BearerCapability attribute is provided for specifying the bearer capability supported on this trunk group. The Bearer Capability must be matched in order to be routed on this trunk group. A BearerCutThrough attribute is provided for specifying when to complete the bearer cut-though for calls on this trunk group.

Further, the pseudo code for object 306 includes an EchoControlIncluded attribute for specifying whether an echo control device has been included (e.g., by the IAD).

A JipData attribute is provided for specifying, for incoming calls on this trunk group, the data to be used for a jurisdiction information parameter (JIP) when the call is outgoing on an ISUP trunk group and the JIP is required.

A CallingPartyNumberIncluded attribute is provided for specifying, for outgoing calls on this trunk group, whether the call party number IE is to be included in the outgoing Q.2931 Setup message.

A CallingPartyNumberRestricted attribute is provided for specifying, for incoming calls on this trunk group, whether the calling party number has a presentation restriction (i.e., the calling party number is not allowed to be included in the outgoing origination message).

A DefaultCallingPartyNumber attribute is provided for specifying, for incoming calls on this trunk group, the default calling party number, when the associated IE is not present in the incoming Q.2931 setup message.

DefaultOriginatingLineInformation attribute is provided for specifying, for incoming calls on this trunk group, the default originating line information (OLI) to be included in the OLI parameter, whenever the call is outgoing on an ISUP trunk group and the OLI parameter is required.

A DefaultCallingPartyCategory attribute is provided for specifying, for incoming calls on this trunk group, the default calling party category (CPC), to be included in the CPC parameter, when the call is outgoing on an ISUP trunk group and the CPC parameter is required.

A BroadbandBearerClassUsed attribute is provided for specifying which broadband bearer class to use in signaling for this trunk group.

A Q2931AddressleUsed attribute is provided for specifying which IE contains the address information for calls on this trunk group.

An example of pseudo code and associated description for Q.2931 timer list object 308 is included in the above pseudo code listing for Q.2931 protocol object 204. The pseudo code for Q.2931 timer list object 308 allows 0-1024 instances. The attributes described in the pseudo code for object 308 include a unique identifier for a timer list. Further, the pseudo code for object 308 includes a description attribute for containing a text description of this timer list. Different attributes are also included for values of a T301 timer, a T303 timer, a T308 timer, a T309 timer, a T309SW timer, a T310 timer, a T316 timer, and a T322 timer. A T301 timer, for example, times until a connect or release complete signal is received. A T303 timer times the delay in network response when the system sends a setup message to initiate an outgoing call. A T308 timer times the delay in network response when the system sends a release message to clear a call. A T309 timer times the duration of a link failure. A T310 timer times the network delay following the receipt of a call-preceding message on an outgoing call.

The following is exemplary object-oriented pseudo code and associated description for 36170 gateway object 208. component 36170Gateway : Gateway { instances 0..255 table QsNode  // combined with info in table AtmNode description “The 36170 gateway.” attribute Id : integer [1..MAXINSTANCES] { default NONE qualifiers KEY, READONLY description “Node number, as assigned by the 46020.” } attribute NsapPrefix : hexdigits [26] { default NONE description “The node's NSAP prefix. Required when creating SVCs.” } component 36170QsPort { instances 0..N table QsPort qualifiers DYNAMIC description “Specifies a 36170 port. Automatically filled in by the system based on information from the 46020.” reference NodeId to 36170Gateway by Id { default NONE qualifier COMPKEY, NONNULL, OPERATIONAL, READONLY description “Points to the 36170Gateway (node) this port belongs to. The node contains the NSAP prefix.” } attribute Shelf : integer [1..16] { default NONE qualifier COMPKEY, OPERATIONAL, READONLY description “Shelf number. Added to NSAP prefix.” } attribute Slot : integer [1..12] { default NONE qualifier COMPKEY, OPERATIONAL, READONLY description “Slot number. Added to NSAP prefix.” } attribute Port : integer [1..8] { default NONE qualifier COMPKEY, OPERATIONAL, READONLY description “Port number. Added to NSAP prefix.” } attribute PortType : enum [ATMPort_T1(0), ATMPort_E1(1),   ATMPort_OC3(2)] { qualifiers OPERATION, READONLY description “Specifies the port type.” } // ... other attributes go in here } // end of 36170QsPort // ... other 36170Gateway components may go in here } // end of 36170Gateway The pseudo code for 36170 gateway object 208 allows 0-255 instances and provides an envelope for grouping together 36170 gateway components and attributes. The pseudo code for object 208 includes an Id attribute for the node number assigned to the 36170 gateway. An NsapPrefix attribute is provided for the node's network service access protocol (NSAP) prefix, which is required when creating SVCs.

Further, the envelope provided by object 208 includes a description of 36170 QsPort object 310. Object 310 allows 0-N instances. The pseudo code for object 310 points to the 36170 gateway to which this port belongs. The pseudo code for object 208 also includes a Shelf attribute to indicate a shelf number for the port. Further, object 208 includes a Slot attribute, a Port attribute, a PortType attribute for specifying a slot number, a port number, and a port type, respectively.

The following is exemplary object-oriented pseudo code and description for trunk group class 212. generic TrunkGroup { instances 0..4095 description “This generic component is the base class for any trunk group. It defines the protocol-independent parameters (i.e. which are common to all trunk groups).” attribute Id : integer [1..MAXINSTANCES] { default NONE qualifiers KEY, READONLY description “Unique Id for a trunk group.” } attribute Name : string [0..15] { default “” description “Contains a name or description string for this trunk group.” } attribute Type : enum [TG_ISUP(1), TG_ISUPVIRTUAL(2),   TG_PRI(3), TG_Q2931(4)] { default NONE qualifiers CRITICAL description “Defines the signaling protocol for this trunk group.” } attribute Direction : enum [in(1), out(2), both(3)] { default both(3) description “Specifies the direction in which calls are allowed for this trunk group.” } attribute EndpointSelection : enum [roundRobin(0), topDown(1), bottomUp(2)] { default roundRobin(0) description “Specifies the endpoint selection strategy for this trunk group.” } attribute OriginatingCoS : integer [0..32] { default 0 description “Specifies the class of service (COS) for calls originating on this trunk group.” } attribute TerminatingCoS : integer [0..32] { default 0 description “Specifies the class of service (COS) for calls terminating on this trunk group.” } reference InitialSlpId to Slp by Id { default Id(0) integrity (if Direction != out(2)   then InitialSlpId != Id(0) ) description “Unless ANI screening fails, this is the initial SLP executed for calls originating on this trunk group.” } attribute AniScreening : enum [no(0), yes(1)] { default no(0) description “Specifies whether ANI is required or not for this trunk group.” } attribute AniExpected : enum [no(0), yes(1)] { default no(0) description “Specifies whether ANI is required or not for calls originating on this trunk group. If required and not available, the “unknown ANI” SLP is executed.” } reference UnknownAniSlspID to Slp by Id { default Id(0) // null reference integrity (if Direction != out(2) && AniExpected = yes(1)   then InitialSlpId != Id(0) ) description “Unless ANI screening fails, this is the initial SLP executed for calls originating on this trunk group.” } reference PretranslationId to PretranslationTable by Id { default Id(0) integrity (if Direction != out(2) && System.CallProcessing.SystemPretransId == Id(0) Then PretranslationId != Id(0) ) description “This specifies the pretranslation table used for incoming calls on this trunk group. If configured, overrides the system-wide default pretranslation table.” } reference NoaId to NoaTable by Id { default NoaId(0) description “Specifies the Nature of Address (NOA) table for this trunk group. If configured, overrides the system-wide default NOA table. This table is used to match the NOA of an incoming call. If no match is found, then the pretranslation table is used to match dialed digits.” } } // end of TrunkGroup The pseudo code for trunk group class 212 allows 0-4095 instances and provides a base class (or generic object) for children trunk group objects. Class 212 defines protocol-based attributes and parameters which may be common to many trunk groups. An Id attribute is provided for the identifier assigned to the trunk group. A Name attribute is provided for containing a name or description string for the trunk group.

Class 212 also includes a Type attribute, a Direction attribute, an EndpointSelection attribute, an OriginatingCoS attribute, a TerminatingCoS attribute, an AniScreening attribute, and an AniExpected attribute. The Type attribute is provided for defining a signaling protocol for this trunk group. The Direction attribute is provided for specifying the direction in which calls are allowed for this trunk group. The EndpointSelection attribute is provided for specifying the endpoint selection strategy for the trunk group. The OriginatingCoS attribute is provided for specifying the class of service (COS) for calls originating on the trunk group. The TerminatingCoS attribute is provided for specifying the COS for calls terminating on the trunk group. The AniScreening attribute is provided for specifying whether automatic number identification (ANI) is required for the trunk group. The AniExpected attribute is provided for specifying whether ANI is required for calls originating on the trunk group.

Class 212 includes four object references. References InitialSlpId and UnknownAniSlspID specify single link procedures (SLPs) executed for calls originating on this trunk group.

A reference Pretranslationid specifies the pretranslation table used for incoming calls on this trunk group. A system-wide default pretranslation table is overridden if this reference is configured.

A reference Noald specifies a nature of address (NOA) table for this trunk group. The system-wide default NOA table is overridden if this reference is configured. The NOA table is utilized to match the NOA of an incoming call. If no match is found, the pretranslation table is used to match dialed digits.

The following is exemplary object-oriented pseudo code and associated description for ATM port class 228. generic Atmport { instances 0..36170QsPort.MAXINSTANCES table AtmPort description “Describes a 36170 port while it is in use by a trunk group. (NOTE: In addition, the components 36170QsPort in table QsPort represent all the available ports, as reported by the 46020.)” reference QsPort to UNIQUE 36170QsPort by (NodeId, Shelf, Slot, Port) { default NONE qualifiers COMPKEY, NONNULL description “Refers to the physical 36170 port in table QsPort. Table QsPort is dynamically filled in by the system, based on information reported by the 46020.” } attribute PortType : enum [ATMport_T1 (0), ATMPort_E1 (1), ATMPort_OC3(2)] { default 36170Port [Port].PortType //This means value is qualifiers READONLY // the same as in QsPort table description “Specifies the port type.” } attribute BearerVpi : integer [0..255] { default (if (PortType == ATMPort_OC3(2))   then default == 1   else default == 0 ) qualifiers CRITICAL description “VPI to be used for bearer channels. Default varies depending on port type.” } attribute UsageType : enum [unused (0), isup (1), pri (2), ivr (3),     tas (4), q2931 (5)] { qualifiers OPERATIONAL, READONLy description “Usage type is filled in by the system, depending on the type of the trunk group this port is associated to.” } attribute AdministrativeState : enum [locked (0), unlocked (1)] { default unlocked (0) description “This is the administrative state of the port. Each port can be locked/unlocked individually.” } attribute OperationalState : enum [disabled (0), enabled (1)] { qualifiers OPERATIONAL, READONLY description “This is the operational state.” } } // end of AtmPort The pseudo code for ATM port class 228 allows 0 to a number of maximum instances that is the same as 36170 QsPort object 310. Class 228 describes a port of a 36170 gateway while it is in use by a trunk group.

Class 228 includes five attributes. A PortType attribute is provided for specifying the port type. A BearerVpi attribute is provided when VPI is used for bearer channels. Data in the UsageType attribute is filled in by the system depending on the type of the associated trunk group. An AdministrativeState attribute includes the administrative state of ATM ports. Each port defined in the AdministrativeState attribute can be locked and unlocked individually. An OperationalState attribute specifies the operational state of the ATM port.

Further, class 228 includes a QsPort reference. Class 228 references 36170 QsPort object 310, which associates the ATM link with a unique physical port on a 36170 gateway object, such as 36170 gateway object 208.

The following is exemplary object-oriented pseudo code and associated description for endpoint class 242. generic Endpoint { instances 0..32256 table AtmEndpoint qualifiers DYNAMIC description “This is the base (or generic object) class for all types of endpoints (ISUP, Q2931...). These dynamic components are automatically added by the system based on the start VCI and the total number of endpoints defined on a port. NOTE: Specific endpoints may have additional attributes, for example, an ISUP endpoint also has Cic and Remote Administrative State.” attribute BearerVci : integer [0..65535] { default NONE qualifiers OPERATIONAL, READONLY description “The VCI of this endpoint. Filled in by the system based on the start VCI and the total number of VCIs.” } attribute CallState : enum [onhook (1), offhook (2), busy (3)] { qualifiers OPERATIONAL, READONLY description “The call processing state of this endpoint.” } reference ConnectedEndpointPort to 36170QsPort   by (NodeId, Shelf, Slot, Port) { qualifiers OPERATIONAL, READONLY description “In case this endpoint is connected as part of a call, specifies the port of the connected (other) endpoint.” } attribute ConnectedEndpointVpi : enum [disabled (0), enabled (1)] { qualifiers OPERATIONAL, READONLY description “In case this endpoint is connected as part of a call, specifies the VCI of the connected (other) endpoint.” } attribute AdministrativeState : enum [unlocked (0), locked (1),       shutdown (2)] { default unlocked (0) description “Specifies the administrate state of the endpoint. When locking, an existing call is allowed to finish. On shutdown, an existing call is cleared.” } attribute OperationalState : enum [disabled (0), enabled (1)] { qualifiers OPERATIONAL, READONLY description “Specifies the operational state of the interface.” } attribute AvailabilityState : set of AvailabilityStateType { qualifiers OPERATIONAL, READONLY description “Specifies the availability state of the interface.” } } // end of Endpoint The pseudo code for endpoint class 242 allows 0-32256 instances. Class 242 describes the base class for all types of suitable endpoints, such as ISUP and Q.2931 endpoints. These are dynamic objects which are automatically added by the system based on the start VCI and the total number of endpoints defined on a port. Some endpoints may have additional attributes. For example, an ISUP endpoint also has circuit identifier code (CIC) and remote administrative state.

Endpoint class 242 includes six attributes. A BearerVci attribute specifies the VCI of the endpoint. A CallState attribute specifies the call processing state of the endpoint.

A ConnectedEndpointVpi attribute specifies the VPI of the connected other endpoint if this endpoint is connected as part of a call. The ConnectedEndpointVci attribute specifies the VCI of the connected other endpoint.

An AdministrativeState attribute is provided for specifying the administrative state of the endpoint. When locking, an existing call is allowed to finish. On shutdown, an existing call is cleared.

An OperationalState attribute is provided for specifying the operational state of the interface.

An AvailabilityState attribute is provided for specifying the availability state of the interface.

Endpoint class 242 also includes a ConnectedEndpointPort reference. When this endpoint is connected as part of a call, this reference specifies the VCI of the other connected endpoint.

The following is exemplary object-oriented pseudo code and associated description for Q.2931 trunk group object 216. component Q2931TrunkGroup : TrunkGroup { table ITrunkGroup // together with ISUP trunk groups integrity (TrunkGroup.Type == TG_Q2931 (4)) description “This component defines a Q2931 trunk group. It inherits all the attributes from TrunkGroup.” reference Q2931ConfigurationId to Q2931Configuration by Id { default NONE qualifiers NONNULL description “Specifies the Q2931 configuration (profile) associated with this trunk group.” } reference Q2931TimerListId to Q2931TimerList by Id { default NONE qualifiers NONNULL description “Specifies the Q2931 timer table (profile) associated with this trunk group.” } reference Q2931SignalingIfId to UNIQUE Q2931SignalingIf by (Id, MuxId) { default NONE qualifiers NONNULL, CRITICAL description “Specifies the Q2931 signaling interface which controls this trunk group.” } component Q2931 : AtmPort { instances 1 table AtmPort integrity (UsageType == Q2931 (5)) description “Specifies the port associated with this trunk group, i.e. describes the characteristics of the port while it is in use by this trunk group.” } // end of Q2931Port component Q2931 : Endpoint { instances 1..N (if Q2931Port.PortType == ATMPort_OC3   then N == 2000   else N == 20 ) table AtmEndpoints qualifiers DYNAMIC description “This is a Q2931 endpoint, which has the same attributes as the basic (generic) endpoint.” } // endpoint of Q2931Endpoint } // end of Q2931TrunkGroup The pseudo code for Q.2931 trunk group object 216 describes a Q.2931 trunk group and inherits all of the attributes defined by trunk group class 212.

Trunk group object 216 includes three references. A Q2931 ConfigurationId reference specifies the Q.2931 configuration profile associated with this trunk group. A Q2931 TimerListld reference specifies a Q.2931 timer table profile associated with this trunk group. A Q2931 SignalingIfId specifies the Q.2931 signaling interface which controls this trunk group.

As stated above, object 216 is a parent of Q.2931 port object 230 and Q.2931 endpoint object 244. Q.2931 port object 230 is provided for specifying the port associated with the trunk group, i.e., the object describes the characteristics of the port while it is in use by the trunk group. Q.2931 endpoint object 244 defines a Q.2931 endpoint.

The following is exemplary object-oriented pseudo code and associated description for local VPI/VCI class 236. generic LocalVpiVci { description “A VPI.VCI pair on an ATM card on VoX. Used for the Q2931 signaling interfaces (backhauls), as well as for the interfaces to the signaling API on the 36170s (muxed and non-muxed).” attribute Vpi : integer [0..255] { default 0 qualifiers COMPKEY, READONLY description “VPI value, for SunATM it is always 0.” } attribute Vci : integer [0..1023] { default NONE qualifiers COMPKEY description “VCI value, for SunATM it is maximum 1023.” } } // end of LocalVpiVci The pseudo code for local VPI/VCI class 236 describes a VPI/VCI pair on an ATM card on VoX. Class 236 may be utilized for Q.2931 signaling interfaces and for the interfaces to the signaling application program interface (API) on the 36170 gateways. Class 236 includes VPI and VCI attributes for VPI and VCI values, respectively.

The following is exemplary object-oriented pseudo code and associated description of remote Q.2931 signaling VPI/VCI object 312. generic RemoteVpiVci { description “A VPI.VCI pair for the remote side of a signaling backhaul VCC. By default, this is the Q2931 signaling channel value of 0.5.” attribute Vpi : integer [0..255] { default 0 description “The VPI value.” } attribute Vci : integer [0..65535] { default 5 description “The VCI value.” } } // end of RemoteVpiVci The pseudo code for remote VPI/VCI object 312 describes a VPI/VCI pair for the remote side of a signaling backhaul virtual channel connection (VCC). The pseudo code for object 312 includes VPI and VCI attributes for VPI and VCI values, respectively.

The following is exemplary object-oriented pseudo code and associated description for Q.2931 signaling interface class 220. generic Q2931SignalingIf {  instances 0..4095  table Q2931SigIntf   // new table  description “This is a Q2931 signaling interface. Every Q2931 trunk must refer to exactly one such interface.”  attribute Id : integer [1..MAXINSTANCES] {   default NONE   qualifiers KEY, READONLY   description “The unique Id for a signaling interface.”  }  attribute Description : string [0..15] {   default “”   description “Contains a description string for this signaling link, e.g. the IAD it connects to.”  }  attribute Side : enum [network (0), user (1)] {   default network (0)   description “Specifies whether this interface is user side or network side (cf. Q2931).”  }  attribute AdministrativeState : enum [unlocked (0), locked (1)] {   default unlocked (1)   qualifiers READONLY   description “Specifies the admin state of the interface, which depends on the state of its port. (The interface cannot be locked or unlocked by itself.)”  }  attribute OperationalState : enum [disabled (0), enabled (1)] {   qualifiers OPERATIONAL, READONLY   description “This is the Q2931 state of the interface. Layer 3 state “Up” maps to enabled, all other states map to disabled.”  }  attribute Layer2MainState : enum [out_of_service (0), connecting (1), in_service (2)] {   qualifiers OPERATIONAL, READONLY   description “This is the layer 2 (SSCOP) state. The Main SSCOP is defined as either the Primary (on the active host) or the Secondary (on the standby host).”  }  attribute Layer2BackupState : enum [out_of_service (0), connecting (1), in_service (2)] {   qualifiers OPERATIONAL, READONLY   description “This is the layer 2 (SSCOP) state. The Backup SSCOP is defined as either the Primary Backup (on the active host) or the Secondary Backup (on the standby host).”  }  component RemoteQ2931SignalingVpiVci : RemoteVpiVci {   instances 1   description “Contains the VPI and VCI (inherited from RemoteVpiVci) for the IAD side of the backhaul SVC.”  }  // end of RemoteQ2931SignalingVpiVci } //  end of Q2931SignalingIf The pseudo code for Q.2931 signaling interface class 220 allows 0-4095 instances. Class 220 describes a Q.2931 signaling interface. Each. Q.2931 trunk refers to one such interface.

Class 220 includes seven attributes. An Id attribute is a unique identifier for a signaling interface. A Description attribute contains a description string for this signaling link (e.g., the IAD to which it is connected). A Side attribute is provided for specifying whether this interface is user side or network side. An AdministrativeState attribute is provided for specifying the administrative state of the interface. The administrative state of the interface depends on the state of its port.

An OperationalState attribute is the Q.2931 state of the interface. Layer 3 state “Up” maps to enabled. All other states map to disabled.

A Layer2MainState attribute is the layer 2 state. The Main service specific connection-oriented protocol (SSCOP) is defined as either the Primary (on the active host) or the Secondary (on the standby host).

A Layer2BackupState attribute is the backup layer 2 state. The backup SSCOP is defined as either the Primary backup (on the active host) or the Secondary backup (on the standby host).

Further, class 220 includes remote Q.2931 signaling VPI/VCI object 312. Object 312 includes the VPI and VCI from the IAD side of the backhaul SVC.

The following is exemplary object-oriented pseudo code and associated description for non-muxed Q.2931 signaling interface object 224. component NonMuxedQ2931SignalingIf : Q2931SignalingIf {   description “This is a non-muxed interface: only one signaling interface per LocalVpiVci.”   component LocalQ2931SignalingVpiVci : LocalVpiVci {    instances 1    description “Contains the VPI and VCI (inherited from LocalVpiVci) for the VoX side of the backhaul SVC. Must be unique among all LocalVpiVci.”    } // end of LocalQ2931SignalingVpiVci }  // end of NonMuxedQ2931SignalingIf The pseudo code for non-muxed Q.2931 signaling interface object 224 describes a non-muxed interface with only one signaling interface per local VPI/VCI. Object 224 includes local Q.2931 signaling VPI/VCI object 240. Object 240 inherits attributes from local VPI/VCI class 234 and contains the VPI and VCI for the for the VoX side of the backhaul SVC.

The following is exemplary object-oriented pseudo code and associated description for muxed Q.2931 signaling interface object 226. component MuxedQ2931SignalingIf : Q2931SignalingIf {   description “This is a muxed interface: several signaling interfaces per LocalVpiVci, distinguished by their mux id.”   reference LocalQ2931SignalingVpiVci to LocalQ2931MuxVpiVci by (Vpi, Vci) {    qualifiers COMPKEY, NONNULL    description “Refers to the component (under 36170Gateway) which contains the VPI and VCI for the VoX side of the muxed signaling VCC.”   }   attribute MuxId : integer [1..255] {    default NONE    qualifiers COMPKEY    description “Zero for a non-muxed interface (for now), or the mux Id for a muxed interface (future).”   } }  // end of MuxedQ2931SignalingIf The pseudo code for muxed Q.2931 signaling IF object 226 describes a multiplexed interface. There are several signaling interfaces per local VPI/VCI and are distinguished by their multiplexer identifier. The pseudo code for object 226 includes a MuxId attribute for identifying the multiplexer.

Further, the pseudo code for object 226 includes a local Q.2931 signaling VPI/VCI object 240, which refers to local Q.2931 multiplexer VPI/VCI object 238. Object 238 is a child object of 36170 gateway object 208 and contains the VPI and VCI for the VoX side of the multiplexed signaling VCC.

The above exemplary object-oriented pseudo code and description may be stored in a memory, such as memory 104 and accessed by application 106 for representing an ATM network and its components. Objects representing instances of classes (or generic objects) defined in the pseudo code can store information about the network with regard to an OAM system. Further, application 106 can interpret and utilize the objects for operating and maintaining the network and its components in the OAM system. The code description can also be modified to include additional objects for representing other components of an ATM network with regard to the OAM system.

It will be understood that various details of the subject matter described herein may be changed without departing from the scope of the subject matter described herein. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation, as the subject matter described herein is defined by the claims as set forth hereinafter. 

1. A system for operating and maintaining resources in a distributed network, the system comprising: (a) a computer comprising a memory and in communication with a network comprising a plurality of network-attached components operating in an operation and maintenance (OAM) system; (b) an object-based representation of the network stored in the memory, wherein the object-based representation comprises objects linked together in the memory to form a hierarchy, wherein each of the objects represent the network or the network-attached components, and wherein each of the objects stores attribute information about the network or the network-attached components with regard to the OAM system; and (c) an application for interpreting and utilizing the object-based representation of the network for operating and maintaining the network and network-attached components in the OAM system.
 2. The system of claim 1 wherein the object-based representation comprises a system object at an apex of the hierarchy, wherein the system object represents the network.
 3. The system of claim 2 wherein the object-based representation includes a plurality of network-attached device objects describing and representing the network-attached components, the network-attached device objects being linked to the system object.
 4. The system of claim 3 wherein the network-attached components comprise components selected from the group consisting of a gateway, a trunk, a port, and an endpoint.
 5. The system of claim 2 wherein object-based representation includes an OAM protocol object describing and representing a protocol operating in the OAM system of the network, the OAM protocol object being linked to the system object.
 6. The system of claim 5 wherein the protocol comprises protocols selected from the group consisting of simple network management protocol (SNMP) and Q.2913-based protocol.
 7. The system of claim 1 wherein each object is defined to comprise relationships with other objects and a set of attributes containing associated attribute information.
 8. The system of claim 1 wherein the objects comprise predefined attributes about the network or network-attached component.
 9. The system of claim 1 wherein the object-based representation comprises first and second objects, wherein the first object comprises first predefined attributes, wherein the second object inherits the first predefined attributes of the first object, and the second object comprises second predefined attributes different from the first predefined attributes.
 10. The system of claim 1 comprising a systems manager for retrieving information from the network components, and for storing the retrieved information in the objects in the memory of the computer.
 11. The system of claim 10 wherein the retrieved information comprises response objects.
 12. The system of claim 11 wherein the response objects are transmitted from the network-attached components.
 13. The system of claim 1 wherein the application is a user interface application for displaying the hierarchy of the object-based representation of the network.
 14. The system of claim 1 wherein the application comprises a programming application for producing a device-to-device interface for accessing the object-based representation of the network.
 15. A method for operating and maintaining resources in a distributed network having a plurality of components, the method comprising: (a) providing an object-based representation of a network in a memory of a computer connected to the network, wherein the object-based representation comprises objects linked together in the memory to form a hierarchy, wherein each of the objects represent the network or network-attached components connected to the network and operating in an operation and maintenance (OAM) system, and wherein each of the objects stores attribute information about the network or the network-attached-components with regard to the OAM system; and (b) operating the network based on the object-based representation of the network.
 16. The method of claim 15 wherein the object-based representation comprises a system object at an apex of the hierarchy, wherein the system object represents the network.
 17. The method of claim 16 wherein the object-based representation includes a plurality of network-attached device objects describing and representing the network-attached components, the network-attached device objects being linked to the system object.
 18. The method of claim 17 wherein the network-attached components comprise components selected from the group consisting of a gateway, a trunk, a port, and an endpoint.
 19. The method of claim 14 wherein the object-based representation includes an OAM protocol object describing and representing a protocol operating in the OAM system of the network, the OAM protocol object being linked to the system object.
 20. The method of claim 19 wherein the protocol comprises protocols selected from the group consisting of simple network management protocol (SNMP) and Q.2913-based protocol.
 21. The method of claim 15 wherein each object is defined to comprise relationships with other objects and a set of attributes containing associated attribute information.
 22. The method of claim 15 wherein the objects comprise predefined attributes about the network or network-attached component.
 23. The method of claim 15 wherein the object-based representation comprises first and second objects, wherein the first object comprises first predefined attributes, wherein the second object inherits the first predefined attributes of the first object, and the second object comprises second predefined attributes different from the first predefined attributes.
 24. The method of claim 15 comprising retrieving information from the network components.
 25. The method of claim 24 comprising storing the retrieved information in the objects in the memory of the computer.
 26. The method of claim 25 wherein the retrieved information comprises response objects.
 27. The method of claim 26 transmitting the response objects from the network-attached components.
 28. The method of claim 15 comprising displaying the hierarchy of the object-based representation of the network.
 29. The method of claim 15 comprising providing a programming application for producing a device-to-device interface for accessing the object-based representation of the network.
 30. A computer program product comprising computer-executable instructions embodied in a computer-readable medium for performing steps comprising: (a) providing an object-based representation of a network in a memory of a computer connected to the network, wherein the object-based representation comprises objects linked together in the memory to form a hierarchy, wherein each of the objects represent the network or network-attached components connected to the network and operating in an operation and maintenance (OAM) system, and wherein each of the objects stores attribute information about the network or the network-attached-components with regard to the OAM system; and (b) operating the network based on the object-based representation of the network.
 31. The computer program product of claim 30 wherein the object-based representation comprises a system object at an apex of the hierarchy, wherein the system object represents the network.
 32. The computer program product of claim 31 wherein the object-based representation includes a plurality of network-attached device objects describing and representing the network-attached components, the network-attached device objects being linked to the system object.
 33. The computer program product of claim 32 wherein the network-attached components comprise components selected from the group consisting of a gateway, a trunk, a port, and an endpoint.
 34. The computer program product of claim 31 wherein object-based representation includes an OAM protocol object describing and representing a protocol operating in the OAM system of the network, the OAM protocol object being linked to the system object.
 35. The computer program product of claim 34 wherein the protocol comprises protocols selected from the group consisting of simple network management protocol (SNMP) and Q.2913-based protocol.
 36. The computer program product of claim 30 wherein each object is defined to comprise relationships with other objects and a set of attributes containing associated attribute information.
 37. The computer program product of claim 30 wherein the objects comprise predefined attributes about the network or network-attached component.
 38. The computer program product of claim 30 wherein the object-based representation comprises first and second objects, wherein the first object comprises first predefined attributes, wherein the second object inherits the first predefined attributes of the first object, and the second object comprises second predefined attributes different from the first predefined attributes.
 39. The computer program product of claim 30 comprising retrieving information from the network components.
 40. The computer program product of claim 39 comprising storing the retrieved information in the objects in the memory of the computer.
 41. The computer program product of claim 40 wherein the retrieved information comprises response objects.
 42. The computer program product of claim 41 transmitting the response objects from the network-attached components.
 43. The computer program product of claim 30 comprising displaying the hierarchy of the object-based representation of the network.
 44. The computer program product of claim 30 comprising providing a programming application for producing a device-to-device interface for accessing the object-based representation of the network. 